<?php
/**
 * 字符串处理类，所以关于字符串处理的功能都在些处
 * create by shenjun(alex)
 * 2008-12-28
 */
class string {
	function __construct(){
	}
	#取掉转义符和前后空格,通常针对数组
	function strip_strim($str){
		if(is_array($str)){
			foreach ($str as &$value){
				if (is_array($value)) {
					$value=$this->strip_str($value);
				}else{
					$value=trim($this->strip_slashe($value));
				}
			}
		}else{
			$str=trim($this->strip_slashe($str));
		}
		return $str;
	}
	#取掉转义符和前后空格,通常针对数组
	function add_strim($str){
		if(is_array($str)){
			foreach ($str as &$value){
				if (is_array($value)) {
					$value=$this->add_str($value);
				}else{
					$value=trim($this->add_slashe($value));
				}
			}
		}else{
			$str=trim($this->add_slashe($str));
		}
		return $str;
	}
	#添加转义符
	function add_slashe($str){
		if (get_magic_quotes_gpc()){
			$str = addslashes($str);
		}
		return $str;
	}
	#去掉转义符
	function strip_slashe($str){
		if (get_magic_quotes_gpc()){
			$str = stripslashes($str);
		}
		return $str;
	}
	/**
	 * author:iceboy
	 * date:2009-03-27
	 * module:检测字符串是否合要求
	 * parameter:
	 * $parameter['not']为不等于哪个值
	 * $parameter['notnull']为不会空
	 * $parameter['email']检测是不是email
	 * $parameter['length']检测长度是不是等于这个值
	 * $parameter['lengthless']检测长度是小是等于这个值
	 * $parameter['lengthmore']检测长度是大是等于这个值
	 * $parameter['only_num']判断是否是数字
	 */
	function check_str($value,array $parameter=array()){
		if (!empty($parameter['not'])) {
			return $parameter['not']===$value ? true : false;
		}
		if (!empty($parameter['notnull'])) {
			return is_null($value) ? false : true;
		}
		if (!empty($parameter['email'])){
			return ereg('^[0-9a-zA-Z\-\_]+@[0-9a-zA-Z\-\_]+\.[0-9a-zA-Z\-\_]+$',$value) ? true : false ;
		}
		if (!empty($parameter['length'])) {
			return strlen($value)==$parameter['length'] ? true : false ;
		}
		if (!empty($parameter['lengthless'])) {
			return strlen($value)<$parameter['lengthless'] ? true : false ;
		}
		if (!empty($parameter['lengthmore'])) {
			return strlen($value)>$parameter['lengthmore'] ? true : false ;
		}
		if (!empty($parameter['only_num'])) {
			return preg_match('/[^\d-.,]/',$value) ? false : true ;
		}
	}
	/**
	 * author:iceboy
	 * date:2009-03-28
	 * module:字符串截取
	 * parameter:
	 * 	$str是需要分割的字符串
	 * 	$len是从第多少位来分割
	 * 	$replace_str是超出部份用来替代的
	 * 
	 * 此方法不支持中文
	 */
	function str_cutter($str,$len,$replace_str='……'){
		if (strlen($str) > $len){
	  	return substr($str,0,$len).$replace_str;
	  }else{
	  	return $str;
	  }
	}
	/**
	 * author:iceboy
	 * date:2009-03-28
	 * module:取掉字符串中的所有HTML标签，简单判断，去掉所有<>中间的部份
	 */
	function strip_html($str){
		$str=preg_replace("/<(.*?)>/","",$str);
		return $str;
	}
}
?>